package leetcode每日一题.leetcode20212;

/**
 * 1. 问题描述
 *
 * 2. 算法分析
 *
 * 3. 代码实现
 */
@SuppressWarnings("all")
public class Q002_2最大连续1的个数 {

    public int longestOnes(int[] A, int K) {
        int len = A.length;
        if(len < 2) {
            return len;
        }
        int zeros = 0; // 记录0的个数
        int res = 0;
        // 定义窗口
        int left = 0;
        int right = 0;
        while(right < len) {
            if(A[right] == 0) {
                zeros++;
            }
            right++;
            while(zeros > K) {
                if(A[left] == 0) {
                    zeros--;
                    left++;
                } else {
                    left++;
                }
            }
            res = Math.max(res,right - left);
        }
        return res;
    }
}
